{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "19ed2db7",
   "metadata": {},
   "source": [
    "# Matplotlib 基础"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "08069696",
   "metadata": {},
   "source": [
    "```{admonition} “白话”解释\n",
    "- **Figure**：就像一张画布（画板）。所有图形都必须画在画布上。  \n",
    "- **Axes**：画布上的“小画框”，里面有坐标系。你看到的折线图、柱状图，都是画在 Axes 里。一个 Figure 可以有多个 Axes（比如子图）。  \n",
    "- **Artist**：所有能画出来的东西都是 Artist。线条、文字、坐标轴、图例，甚至背景，统统是 Artist。  \n",
    "- **Backend**：画图的“工人”。你告诉 Matplotlib 要画一条线，Backend 决定是画在屏幕上（交互窗口）、还是保存成 PNG、PDF 等文件。  \n",
    "```\n",
    "\n",
    "```{admonition} 用类比来理解\n",
    "想象你在画一幅画：  \n",
    "- **Figure** = 整张画布。  \n",
    "- **Axes** = 画布上的一个小画框（子区域）。  \n",
    "- **Artist** = 画框里的所有元素：线条、文字、点、矩形。  \n",
    "- **Backend** = 画笔 + 颜料工厂，决定你是用水彩、油画，还是打印机输出。  \n",
    "```"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "id": "5f8c8f72",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "Matplotlib is building the font cache; this may take a moment.\n"
     ]
    },
    {
     "data": {
      "image/png": "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",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import numpy as np\n",
    "\n",
    "# 创建 Figure（画布）\n",
    "fig = plt.figure()\n",
    "\n",
    "# 在画布上加一个 Axes（子图）\n",
    "ax = fig.add_subplot(111)\n",
    "\n",
    "# 在 Axes 上画一条线（Line2D 是 Artist）\n",
    "x = np.linspace(0, 2*np.pi, 100)\n",
    "y = np.sin(x)\n",
    "line, = ax.plot(x, y, label=\"sin(x)\")\n",
    "\n",
    "# 添加文字（Text 也是 Artist）\n",
    "ax.set_title(\"Sine Wave\")\n",
    "\n",
    "# 显示图形（由 Backend 决定如何渲染）\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "54c17b11",
   "metadata": {},
   "source": [
    "在这段代码里：\n",
    "- `fig` 是 **Figure**  \n",
    "- `ax` 是 **Axes**  \n",
    "- `line` 和 `title` 都是 **Artist**  \n",
    "- `plt.show()` 调用 **Backend** 来渲染  "
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "py313",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.13.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
